# xpath
# 路径
#
# / 绝对路径
# // 相对路径
#
# // *		通配符  匹配所有标签 //tag       匹配指定的标签名      缩小定位范围 //input[ @ id = "kw"]   属性的精准匹配 // tag[ @ 属性 = "属性值"]   id
# name
# class_name
# // input[ @ maxlength = "255"]
#
# 属性的模糊匹配
# // *[contains( @
#
#
# class ,"mnav")] // tag[contains( @ 属性, "属性值")]
#
# // *[text()="hao123"]   文本的精准匹配 // tag[text()="文本值"]   通过text()= 文本值进行元素定位
# 文本值不是value属性值
#
# 文本的模糊匹配
# // tag[contains(text(), "文本值")]
# / 绝对路径
# // 相对路径
#
# / html / div / a[3]
#
# // *		通配符  匹配所有标签 //tag       匹配指定的标签名      缩小定位范围 //input[ @ id = "kw"]   属性的精准匹配 // tag[ @ 属性 = "属性值"]   id
# name
# class_name
# // input[ @ maxlength = "255"]
#
# 属性的模糊匹配
# // *[contains( @
#
#
# class ,"mnav")] // tag[contains( @ 属性, "属性值")]
#
# // *[text()="hao123"]   文本的精准匹配 // tag[text()="文本值"]   通过text()= 文本值进行元素定位
# 文本值不是value属性值
#
# 文本的模糊匹配
# // tag[contains(text(), "文本值")]
#
# xpath语法查找下一级节点  子节点       先定位再通过 / 绝对路径 及[页面顺序]
# // *[@ id="s-top-left"] / a[2]


# 通过逻辑运算符 进行属性的组合匹配
# and or not
# // *[@ id="kw" and @ name="wd"]
#
#
# css_selector:    css
#
#
# 层叠样式表
# 样式表
#
# [属性 = "属性值"]       css_selector [属性 = "属性值"]       css_selector
# 精准匹配
#
# [属性 *= "属性值"]    属性的模糊匹配(包含)
# [属性 ^= "属性值"]    属性的模糊匹配(以xx开头)
# [属性 $="属性值"]    属性的模糊匹配(以xx结尾)
#
# # id.class
# 两种
# 样式表的定义方式
#
# id = kw
# 样式表名称  # kw{
#
# }
# class =s_ipt.s_ipt{
#
# }
#
#
# [id = "s-top-left"]:first - child
# 空格: first - child
# 第一个子节点
# :nth - child(n)
# 第n个子节点
#
# :last - child
# 最后一个子节点
#
# selector
# 多属性组合匹配
# [name = "sex"][value = "0"]



#
# xpath 路径
#
# / 绝对路径
# // 相对路径
#
# / html / div / a[3]
#
# // * 通配符  匹配所有标签
# // tag       匹配指定的标签名      缩小定位范围
# // input[@ id="kw"]   属性的精准匹配 // tag[@ 属性="属性值"]   id name class_name
# // input[@ maxlength="255"]
#
# 属性的模糊匹配
# // *[contains( @ class, "mnav")] // tag[contains( @ 属性, "属性值")]
#
# // *[text()="hao123"]   文本的精准匹配 // tag[text()="文本值"]   通过text()= 文本值进行元素定位
# 文本值不是value属性值
#
# 文本的模糊匹配
# // tag[contains(text(), "文本值")]
#
# xpath语法查找下一级节点  子节点       先定位再通过 / 绝对路径 及[页面顺序]
# // *[@ id="s-top-left"] / a[2]
#
#
# 通过逻辑运算符 进行属性的组合匹配
# and or not
# // *[@ id="kw" and @ name="wd"]
#
#
# css_selector:    css
#
#
# 层叠样式表
# 样式表
#
# [属性 = "属性值"]       css_selector
# 精准匹配
#
# [属性 *= "属性值"]    属性的模糊匹配(包含)
# [属性 ^= "属性值"]    属性的模糊匹配(以xx开头)
# [属性 $="属性值"]    属性的模糊匹配(以xx结尾)
#
# # id.class
# 两种
# 样式表的定义方式
#
# id = kw
# 样式表名称  # kw{
#
# }
# class =s_ipt.s_ipt{
#
# }
#
#
# [id = "s-top-left"]:first - child
# 空格: first - child
# 第一个子节点
# :nth - child(n)
# 第n个子节点
#
# :last - child
# 最后一个子节点
#
# selector
# 多属性组合匹配
# [name = "sex"][value = "0"]
#
# 兄弟节点
# [value = "act_edit_profile"]+[
#
#
# class ="bnt_blue_1"]